package obecto.event
{
	import flash.display.DisplayObject;
	import flash.display.InteractiveObject;
	import flash.events.MouseEvent;
	
	public class DragEvent extends MouseEvent
	{
		public static const DRAG_ENTER:String = "dragEnter";
		
		public static const DRAG_OVER:String = "dragOver";
		
		public static const DRAG_EXIT:String = "dragExit";
		public static const DRAG_DROP:String = "dragDrop";
		public static const DRAG_COMPLETE:String = "dragComplete";
		
		public var dragInitiator:DisplayObject;
		public var dragSource:Object;
		public var dropSource:Object;
		public var action:String;
		
		public function DragEvent(type:String, bubbles:Boolean = true,
								  cancelable:Boolean = true,
								  dragInitiator:DisplayObject = null,
								  dragSource:Object = null,
								  dropSource:Object = null,
								  action:String = null,
								  ctrlKey:Boolean = false,
								  altKey:Boolean = false,
								  shiftKey:Boolean = false)
		{
			super(type, bubbles, cancelable);
			
			this.dragInitiator = dragInitiator;
			this.dragSource = dragSource;
			this.dropSource = dropSource;
			this.action = action;
			this.ctrlKey = ctrlKey;
			this.altKey = altKey;
			this.shiftKey = shiftKey;
		}
	}
}